package QuestionDaily;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;

import static java.util.Arrays.stream;

public class minSwapsCouples_765 {
    /**
     *  n 对情侣坐在连续排列的 2n 个座位上，想要牵到对方的手。
     *  每次交换可选择任意两人，让他们站起来交换座位
     *  以便每对情侣可以并肩坐在一起。
     * @param row row[i] 是坐在第 i 个座位上的人的 ID。
     * @return返回 最少交换座位的次数
     */
    public int minSwapsCouples(int[] row) {
        /**
         * 首先想到的是，暴力遍历，
         * 因为情侣的编号相邻，所以相邻的情侣编号/2的值是相等的，
         * 将数组的值全部/2，得到的结果，两两一组，如果有一组结果不等，必然需要处理
         * 没想到暴力遍历，竟然能通过，0ms，时间100%，空间94%，不知道为什么
         */
        int count=0;
        for(int i=0;i<row.length-1;i+=2){
            if(row[i]/2!=row[i+1]/2){  //不是情侣
                for(int t=i+2;t<row.length;t++){ //往后找情侣
                    if(row[t]/2==row[i]/2){
                        int num=row[i+1];  //进行交换
                        row[i+1]=row[t];
                        row[t]=num;
                        count++;
                    }
                }
            }
        }
        return count;
    }
}
